import os
import numpy as np

def gen_golden_data_simple():
    # 配置参数
    # 设置输入类型
    # import tensorflow as tf
    # dtype = tf.bfloat16.as_numpy_dtype
    # dtype = np.float16
    dtype = np.float32
    # dtype = np.int8
    # dtype = np.int16
    # dtype = np.int32
    # dtype = np.float16

    input_shape = [8, 20480]
    
    # 生成包含正负数的输入数据（范围-10到10）
    x = np.random.uniform(-10, 10, input_shape).astype(dtype)
    
    # 设置阈值（通常为1.0）
    threshold = 1.0
    
    # 计算thresholded ReLU: f(x) = x if x > threshold else 0
    golden = np.where(x > threshold, x, 0).astype(dtype)
    
    # 创建输入输出目录（使用os.makedirs更规范）
    os.makedirs("./input", exist_ok=True)
    os.makedirs("./output", exist_ok=True)
    
    # 保存文件（保持原有文件格式）
    x.tofile("./input/input_x.bin")
    golden.tofile("./output/golden.bin")
    
    # 打印调试信息
    print(f"生成数据完成！输入范围: [{x.min():.3f}, {x.max():.3f}]")
    print(f"阈值: {threshold}")
    print(f"输出ThresholdedReLU范围: [{golden.min():.3f}, {golden.max():.3f}]")
    print(f"大于阈值的元素数量: {np.sum(x > threshold)} / {x.size}")
    print(f"小于等于阈值的元素数量: {np.sum(x <= threshold)} / {x.size}")

if __name__ == "__main__":
    gen_golden_data_simple()